<?PHP

/**
 * Функция отправляет заданный в форме текст по почте 
 * аргументу функции:
 * email - адрес получателя
 * subject - тема сообщения
 * Для компании ТеплоАрт
 * 
 * @author agrouzdev
 * @package teploart
 */

function smarty_function_sendmessageta($params, &$smarty)
{
	$fieldset = array(
		array('name'=>'Фамилия, имя','email'=>'E-mail','question'=>'Вопрос'),
		array('name'=>'Фамилия, имя','birth'=>'Дата рождения','tel'=>'Контактный телефон',
		'email'=>'E-mail','education'=>'Образование',
		'expirience'=>'Опыт работы',
		'extinfo'=>'Дополнительная информация'
		),
		array('name'=>'Фамилия, имя','email'=>'E-mail','info'=>'Контактная информация','question'=>'Вопрос',)
	);
	
	if (!isset($params['fieldset'])) throw  new fwException("Не установлен набор полей",0);
	if (!isset($params['email'])) throw  new fwException("Не установлен e-mail получателя сообщения",0);
	
	$set = $fieldset[$params['fieldset']];
	$message = array();
	
	foreach ($set as $fName => $fDescr) {
		if (!isset($_POST[$fName])) return "Не заполнено поле ".$fDescr;
		if (($fName=='email') && (!eregi('^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$',$_POST[$fName])))
			return "Вы ввели адрес электронной почты в неправильном формате";
		
		$message[] = $fDescr.': '.safeText($_POST[$fName]);
	}
	$messageStr = implode("\r\n",$message);
	$subject = isset($params['subject']) ? $params['subject'] : "";
	if (@mail( $params["email"], $subject, $messageStr))
		return "Спасибо, ваше сообщение отправлено. Наши специалисты постараются ответить на ваш вопрос в максимально сжатые сроки";
	else
		return "Во время отправки сообщения произошла неизвестная ошибка";
}

function safeText($c) {
		//$c = str_replace("\"", "", $c);
		$c = str_replace("<", "&lt;", $c);
		$c = str_replace("<", "&gt;", $c);
		//$c = str_replace(" ", "", $c);
		//$c = str_replace("\n", "", $c);
		//$c = str_replace("\r", "", $c);
		$c = str_replace("\$", "", $c);
		//$c = trim($c);
		$c = stripslashes($c);
		//$c = substr($c,0,254);
		return $c;
}
?>